/**
 *find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
 * @param {*} callback
 * @returns item/undeined
 */
Array.prototype.myFind = function (callback) {
  if (typeof callback !== "function")
    return new TypeError("callback must be function");

  const len = this.length;
  for (let i = 0; i < len; i++) {
    if (callback(this[i], i, this)) return this[i];
  }
  return undefined;
};

// eg
let arr = [
  { a: 1, b: 1 },
  { a: 2, b: 2 },
];

let res = arr.myFind((item, i) => {
  return item.a === 1;
});
console.log(" [ res ]-25", res);
// 比较
let res1 = arr.find((item, i) => {
  return item.a === 1;
});
console.log(" [ res ]-25", res1);
